package com.init.bootframe.system.service;

import com.init.bootframe.system.vo.MenuVO;
import com.init.bootframe.system.vo.ModuleVO;
import net.sf.json.JSONObject;

import java.util.List;
import java.util.Map;

/**
 *  角色service
 */
public interface IMenuService {
    /**
     *
     * 查询所有栏目列表
     *
     * @param menuVO
     * @return
     */
    public List<MenuVO> findMenuList(MenuVO menuVO);


    /**
     *
     * 查询用户所有栏目列表
     *
     * @param menuVO
     * @return
     */
    public List<MenuVO> findMenuListByUser(MenuVO menuVO);

    /**
     *
     * 编辑栏目
     *
     * @param menuVO
     * @return
     */
    public Map<String, Object> addMenu(MenuVO menuVO);

    /**
     *
     * 编辑栏目
     *
     * @param menuVO
     * @return
     */
    public Map<String, Object> updateMenu(MenuVO menuVO);

    /**
     * 修改批量栏目
     *
     * @param menuJson
     *            参数
     * @return resultMap 返回结果消息
     */
    public Map<String, Object> updateBatchMenu(String menuJson);

    /**
     *
     * 栏目查询
     *
     * @param menuVO
     * @return
     */
    public MenuVO findMenu(MenuVO menuVO);

    /**
     *
     * 栏目删除
     *
     * @param menuVO
     * @return
     */
    public Map<String, Object> deleteMenu(MenuVO menuVO);

    /***************** 功能操作 ********************/
    /**
     * 添加功能
     *
     * @param moduleVO
     * @return
     */
    public Map<String, Object> addModule(ModuleVO moduleVO) throws Exception;

    /**
     * 修改功能
     *
     * @param moduleVO
     * @return
     */
    public Map<String, Object> updateModule(ModuleVO moduleVO) throws Exception;

    /**
     * 删除功能
     *
     * @param moduleVO
     * @return
     */
    public Map<String, Object> deleteModule(ModuleVO moduleVO) throws Exception;

    /**
     * 查询功能详细信息
     *
     * @param moduleVO
     * @return
     */
    public ModuleVO findModule(ModuleVO moduleVO);

    /**
     * 分页查询功能所有信息集合
     *
     * @param moduleVO
     * @return
     */
    public JSONObject findModules(ModuleVO moduleVO);

    /**
     * 查询所有菜单下栏目功能信息
     *
     * @param menuVO
     * @return
     */
    public List<MenuVO> findMenuModuleList(MenuVO menuVO);
}
